System for effecting a telephone call over a computer network without alphanumeric keypad operation

ABSTRACT

A system for effecting a telephone call between telephonic devices is operative to use a computer network, without manual use of the alphanumeric keypads. A third party call control (3PCC) application program interface (API) provides the capability for users to use a web browser or other Internet capable software to place a call, rather than using the telephone keypad. A third party call control application program interface includes a uniform resource locator operable over the Internet to cause a call between a first telephonic device and a second telephonic device to be completed. The uniform resource locator includes identification of the first telephonic device and identification of the second telephonic device.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. Pat. No. 8,320,543, issuedNov. 27, 2012, which is a continuation of U.S. patent application Ser.No. 11/081,174, filed Mar. 16, 2005. The aforementioned related patentapplications are herein incorporated by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a system for effecting a telephone callbetween telephonic devices. The present invention also relates to noveluses of a web browser and Internet capable software.

2. Description of the Related Art

Voice-over Internet Protocol (VoIP) is a category of hardware andsoftware that enables the user to use a computer network such as theInternet as the transmission medium for telephone calls by sending voicedata in packets using Internet Protocol (IP) rather than by traditionalcircuit transmissions of the Public Switch Telephone Network (PSTN).This eliminates circuit switching and the associated waste of bandwidth.Instead, packet switching is used, wherein IP packets with voice dataare sent over the network only when data needs to be sent, i.e. when aparty to the call is speaking.

The advantages of VoIP over traditional telephony include, by wayexample, lower costs per call, especially for long-distance calls, andlower infrastructure costs. That is, once the IF infrastructure isinstalled, no or little additional telephony infrastructure is required.

However, despite the technological flexibility of a VoIP system, callersare still limited to initiating calls manually, that is by using thekeypad on a telephone.

There is an art desired need to greatly reduce or eliminate the user'smanual activities in initiating a telephone call, including thetelephone keypad operation.

OBJECTS AND SUMMARY OF THE INVENTION

It is therefore a principal object of the present invention to provide asystem for effecting a telephone call between telephonic devices using acomputer network without manual use of the telephonic device keypads.

The third party call control (3PCC) application program interface (API)of the present invention provides the capability for users to use a webbrowser or other Internet capable software to place a call. Thiseliminates using the telephone keypad. The open nature of the API alsoprovides the capability to integrate 3PCC functionality with new orexisting applications, such as customer relationship management (CRM),contact management applications, and the like.

In one embodiment of the present invention, a third party call controlapplication program interface includes a first uniform resource locatoroperable over the Internet to cause a call or connection between a firsttelephonic device and a second telephonic device to be completed. Thefirst uniform resource locator includes identification of the firsttelephonic device and identification of the second telephonic device.

In one aspect of the present invention, the first uniform resourcelocator may be generated on a computer system that is communicativelyconnected to the Internet. The call may be completed by initiating acall to the first telephone device and transferring the call, so as tocomplete the call, to the second telephone device, when the call to thefirst telephone device is answered. The call may be initiated to thefirst telephone device using the Session Initiation Protocol INVITEmethod. The call may be transferred to the second telephone device usingthe Session Initiation Protocol REFER method.

In one aspect of the present invention, the identification of the firsttelephonic device may include identification of a telephone number ofthe first telephone device and the identification of the secondtelephonic device may include a telephone number of the secondtelephonic device. The telephonic devices may be conventionaltelephones. However, the present invention contemplates any present orfuture telephonic device. The third party call control applicationprogram may further include identification of an account to be billed.The identification of the first telephonic device includes a telephonenumber of the first telephone device and the identification of thesecond telephonic device includes a telephone number of the secondtelephonic device. The identification of the account to be billed mayinclude the telephone number of the first telephonic device, thetelephone number of the second telephonic device, or the telephonenumber of a third telephonic device.

In one further aspect of the present invention, the third party callcontrol application program may further include a second uniformresource locator operable over the Internet to obtain informationidentifying an account to be billed. The information identifying anaccount to be billed may also include at least one telephone number. Atleast one of the first uniform resource locator identification of thefirst telephone device and the first uniform resource locatoridentification of the second telephone device may include at least onetelephone number obtained by the second uniform resource locator.

In a still further aspect of the present invention, the third party callcontrol application program includes identification and passwordinformation; such information is authenticated and validated before thecall is completed.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an exemplary block diagram of the system in which the presentinvention may be implemented;

FIG. 2 is an exemplary diagram of an implementation of a contact listinterface to functionality of the present invention; and

FIG. 3 illustrates an example of a vcard implementing functionality ofthe present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The third party call control (3PCC) application program interface (API)of the present invention provides the capability for users to use a webbrowser or other Internet capable software to place a call. Thiseliminates using a keypad such as the alpha/numeric keypad on aconventional telephone. The open nature of the API also provides thecapability to integrate 3PCC functionality with new or existingapplications like customer relationship management (CRM), contactmanagement applications, and the like.

A system in which the present invention may be implemented is shown inFIG. 1. In one embodiment, a user computer system 102 is used to accessthe Internet and invoke the 3PCC API using a secure hyper-text transferprotocol (HTTPS) uniform resource locator (URL) 104 (secure socketslayer (SSL)). The URL 104 is used to pass authorization credentials,such as login information, along with at least two phone numbers, a“from” number and a “to” number. An example of a suitable URL is:

   https://secure.url.com/tpcc/makecall?username=aw&password=secret & fromnumber=17325551111&tonumber=17325552222

This URL includes specification of the secure hyper-text transferprotocol (https:), the Internet address of web server 106(secure.url.com), the action to be performed by web server 106(makecall), the authorization credentials (username=aw&password=secret),the telephone number of the telephone from which the call is tooriginate (fromnumber=17325551111) and the telephone number of thetelephone to which the call is to be completed (tonumber=17325552222).

The HTTP URL activates a secure web server 106, which authenticates theuser and passes the information to a CallController system 108.Preferably, the information is passed from secure web server 106 toCallController 108 using a Remote Procedure Call (RPC) 110. TheCallController 108 is a trusted peer of Session Initiation Protocol(SIP) proxy server 114.

SIP is a signaling protocol for Internet conferencing, telephony,presence, events notification and instant messaging. SIP provides thenecessary protocol mechanisms so that end systems and proxy servers canprovide services such as call completion, call forwarding, callee andcalling “number” delivery, personal mobility, terminal-type negotiationand selection, terminal capability negotiation, caller and calleeauthentication, blind and supervised call transfer, invitations tomulticast conferences.

A goal for SIP was to provide a superset of the call processingfunctions and features present in the public switched telephone network(PSTN). As such, features that permit familiar telephone-like operationsare present: dialing a number, causing a phone to ring, hearing ringbacktones or a busy signal. Implementation and terminology are different;for example, SIP refers to a device being in an “alerting state” ratherthan a “ringing.”

In response to receiving the RPC 110 from secure web server 106,CallController 108 invokes a number of SIP methods 112 involving SIPproxy server 114. In response, SIP proxy server 114 invokes those SIPmethods 116 to the appropriate target. In addition, SIP proxy server 114monitors any calls that are initiated and completed, in order to handlethe necessary billing functions.

In particular, CallController 108 initiates a call from CallController108 to the “from” number, using the SIP INVITE method. SIP proxy server114 in turn invokes the SIP INVITE method 116 targeting the “from”telephone 118. The technique used to invoke the SIP INVITE methoddepends upon the type of “from” telephone 118 involved. For example, ifthe “from” telephone 118 is an Internet Protocol (IP) telephone, the SIPMVITE method 120B may be invoked directly on the “from” telephone 118,since the IP telephone is capable of performing the necessary functionsin response to the invocation of the SIP INVITE method. Alternatively,if the “from” telephone 118 is a standard Public Switched TelephoneNetwork (PSTN) telephone, then the SIP INVITE method is invoked using aPSTN gateway server 120A to initiate the call. In either case, a call tothe “from7’ telephone 118 is initiated.

When the “from” telephone 118 answers, CallController 108 initiates acall transfer to transfer the call to the “from” telephone 118 from theorigin of the call, CallController 108, to the “to” telephone 122number, using the SIP REFER method. This terminates the initial callbetween the CallController and the “from” telephone 118, and triggersthe “from” telephone 118 to initiate a new call to the “to” telephone122. This call is billed to the appropriate account.

There are three possible numbers to which the call may be billed—the“from” number, the “to” number, or a third “billto” number. The numberto which the call is billed must belong to a subscriber of the telephoneservice provider. Thus, if the “from” number belongs to the subscriber,the call is billed to the “from” number, if the “to” number belongs tothe subscriber, the call is billed to the “to” number, if neither the“from” number nor the “to” number belong to the subscriber, a thirdnumber must be billed. This third number may be supplied in the URL 104or it may be associated with the user name that was used to login. Anexample of a suitable URL including a “billto” number is:

  https://secure.url.com/tpcc/makecall?username=aw&password=secret &fromnumber=17325551111&tonumber=17325552222& billtonumber=17325553333

Preferably, an additional HTTPS URL is exposed which allows anapplication to retrieve a list of phone numbers in a user's account.This URL passes authorization credentials (login information) andreturns the phone numbers associated with the account corresponding tothat login information. This list can be presented to the user to selectwhich number is to initiate the call (the “from” number), and/or toselect which number is to be billed for the call (the “billto” number).

Although, typically, user computer system 102 is used to initiate thetelephone calls, calls may also be initiated from a third partytelephone 124. Third party telephone 124 would dial into an interactivevoice response (IVR) system 126 and would be used to enter theinformation needed to initiate the telephone call. IVR 126 would passthe information to CallController 108 using RPC 128. The system wouldthen initiate the call in a manner similar to that for a call initiatedfrom user computer system 102.

The third party telephone configuration slightly changes the role of“from” telephone 118, as compared to the configuration involving onlythe “to” and “from” telephones. Both “to” telephone 122 and “from”telephone 118 become the “to” telephones. If the third party places acall to “from” telephone 118, SIP proxy server 114 invokes sip invitemethods 116, as discussed above. However, if third party telephone 124is trying to reach “to” telephone 122, the inventive system may have analternative and additional communication link 500 adaptively operable inresponse to invoking methods similar to sip invite methods 116 by ProxyServer 114.

As a further possibility, CALL CONTROLLER SERVER 108 can always directlycall “to” telephone 122 using the link similar to communication link500. One of possible scenarios involving such a direct connection mayinvolve a situation when the caller operating the “from” telephone doesnot want experience any delays due to the busy line. Instructing thecontroller server to initiate contact with the “to” telephone and, oncethe operator of the “to” telephone answers the call from the controllerserver, actually connecting the “from” and “to” telephones may save theoperator of the “from” telephone time.

The configuration of the inventive system involving third partytelephone 124 may have numerous practical ramifications and be used in avariety of ways. For instance, one potential use of this is similar to a“calling card”. The subscriber could initiate a call from any telephone,such as their hotel room telephone or a pay telephone, to any otherphone, while billing the call to their own account.

Examples of users of the services provided by the present inventioninclude business users who have a large phone book of users they need tocall (e.g. sales calls), or by telemarketing operations. In thissituation, the subscriber uses the “from” telephone and the calls arebilled to the “from” number.

For example, this could be implemented in phone or address booksoftware, such as using a plug-in to an email program such as MICROSOFTOUTLOOK®, or in contact manager software. An example of such animplementation is shown in FIG. 2. In this example, a contacts window202 includes a plurality of contacts entries 204A-C. Each contact entry204A-C includes a contact address 208A-C and a contact telephone number210A-C. Associated with each contact telephone number 210A-C is asoftware control, which, when activated, causes the telephone number210A-C to be dialed using the third party call control system shown inFIG. 1. The software control may take any form. For example, thesoftware control may be a button or an active area associated with thetelephone number 210A-C. Alternatively, the software control may be ahotkey, which may operate, for example, by a user selecting a telephonenumber and then pressing the hotkey. These are merely examples ofsuitable software controls; any software control with adequatefunctionality may be used.

In order to dial the telephone number 210A-C using the third party callcontrol system shown in FIG. 1, a URL, such as those shown above, isused. The telephone number 210A-C is included in the URL, typically asthe “to” number. The “from” number would typically be the phone numberof a phone available to the person initiating the call. The “billto”number may be omitted from the URL, in which case the “from” numberwould typically be billed, or a third “billto” number may be included inthe URL.

Additional enhancement to this functionality include the capability toscan pages and documents for character strings that appear to betelephone numbers. These telephone numbers may be highlighted for theuser. The user may then dial any such telephone number by selecting thenumber and pressing the hotkey or other software control.

Preferably, the implementation includes sufficient intelligence tounderstand the formats of telephone numbers, including internationaltelephone numbers, as well as the ability to filter the characters inthe telephone number to strip characters such as parentheses, hyphens,etc.

In another embodiment, subscribers are able to distribute softwareobjects that provide the capability for the recipient of the object tocall the subscriber. Typically, the software object is distributed usingemail, but it may be distributed by download or any form of electroniccommunications. An example of such a software object is shown in FIG. 3.In the example shown in FIG. 3, the software object is a virtual contactcard or “vcard” 302. In this example, vcard 302 includes informationsuch as a company name 304, the subscriber's name 306, the address 308,and instructions for initiating a call 310. In addition vcard 302includes a field in which the recipient of the vcard is to enter theirtelephone number 312 and a software control 314, such as a button, thatinitiates the telephone call. The information provided, the company name304, the subscriber's name 306, the address 308, and instructions forinitiating a call 310, are merely examples and any desired informationmay be included in the vcard. Likewise, field 312 and software control314 are merely examples of a software mechanism that may be used foroperation of the vcard.

Included in or associated with vcard 302 and/or software control 314 issoftware that initiates a telephone call between the subscriber and therecipient of the vcard. When the recipient enters a telephone number infield 312 and activates software control 314, vcard 302 generates a URLand uses the URL to transmit information 316 to a vcard server 318.While the transmitted information 316 may include the identification andpassword information of the subscriber, preferably, transmittedinformation 316 does not include this information in an insecure form.For example, transmitted information 316 may include the identificationand password information of the subscriber in an encrypted form, ortransmitted information 316 may be a token that is used by vcard server318 to obtain the identification and password information of thesubscriber, such as by a database lookup.

Vcard server 318 receives the transmitted information 316 and generatesa URL that is used to transmit information 320 to secure web server 106.This URL is similar to that generated by user computer system 102, shownin FIG. 1, which is used to communicate with secure web server 106. Ifthe transmitted information 316 is encrypted identification and passwordinformation of the subscriber, vcard server 318 decrypts the informationand uses it to generate the URL. If the transmitted information 316 is atoken, vcard server 318 validates the token, then uses the token toobtain the identification and password information of the subscriber,such as by using the token to access a database that contains theidentification and password information of the subscriber. In any case,the URL is used to transmit information 320 to secure web server 106,which initiated the telephone call in a manner similar to that shown inFIG. 1.

Typically, vcard 302 includes information such as the network address ofvcard server 318, token and/or encryption information, and informationidentifying the sender of the vcard. Alternatively, vcard 302 couldinclude a unique token that identifies the particular call setup to beinitiated, but which does not itself include information that identifiesthe subscriber account involved. Of course, various modifications arepossible, such as including the identification information, but not thepassword, etc.

In the example shown in FIG. 3, vcard 302 included field 312 in whichthe recipient of the vcard entered the telephone number to which thetelephone call was to be completed. Alternatively, the sender of thevcard or other software object could specify a particular number towhich the telephone call is to be completed. This would allow asubscriber to control the particular calls that can be made. Forexample, the subscriber could generate one software object thatinitiated a call from their grandmother's phone to the subscriber'sphone, another software object that initiated a call from a friend'sphone to the subscriber's phone, etc. This allows parties to initiatecalls to the subscriber from their phone at any time, while billing thesubscriber, the “to” number.

In addition, the sender of software object may be allowed to specifyconditions for use of the software object. For example, the sender mayspecify that the software object expires after a particular date, thesender may specify time of day restrictions on the calls, the sender mayrestrict international calls, and the like. If the transmittedinformation is encrypted, this information may be included in theencrypted information. If the transmitted information is a token, thedatabase may include the appropriate conditional information.

Although specific embodiments of the present invention have beendescribed, it will be understood by those of skill in the art that thereare other embodiments that are equivalent to the described embodiments.For example, the present invention may also be advantageously applied tothree-way and/or multiple party conferencing. For three-wayconferencing, the system shown in FIG. 1 would be used to initiate twocalls to the same telephone. Typically, the first call would becompleted to the telephone, the second call would be initiated, thetelephone would receive a call waiting indication, and the second callwould be conferenced in to the first. For multiple party conferencing,the system shown in FIG. 1 would be used to initiate multiple calls to aconference bridge, with all calls billed to the account of theconference organizer.

In addition, it is important to note that while the present inventionhas been described in the context of a fully functioning data processingsystem, those of ordinary skill in the art will appreciate that theprocesses of the present invention are capable of being distributed inthe form of a computes readable medium of instructions and a variety offorms and that the present invention applies equally regardless of theparticular type of signal bearing media actually used to carry out thedistribution. Examples of computer readable media includerecordable-type media such as floppy disc, a hard disk drive, RAM, andCD-ROM's, as well as transmission type media, such as digital and analogcommunications links.

Accordingly, it is to be understood that the invention is not to belimited by the aforesaid specific illustrated embodiments, but by thescope of the appended claims.

What is claimed is:
 1. A method of telephone call completion comprising:(a) displaying contact information comprising information relating to atelephone call that may be completed; (b) receiving a uniform resourcelocator (URL) including call setup information having an indication ofthe telephone call to be completed from a first telephonic device to asecond telephonic device, wherein the call setup information includes anidentification of the first telephonic device and an identification ofthe second telephonic device; (c) initiating a call to the firsttelephonic device or the second telephonic device using a sessioninitiation protocol (SIP) INVITE method and the received call setupinformation; (d) transferring the call using a SIP REFER method and thereceived call setup information in response to an answer of the call toestablish the telephone call from the first telephonic device to thesecond telephonic device; and (e) billing the telephone call to anappropriate account, wherein billing information is derived from a “billto” number supplied in the URL.
 2. The method of claim 1, whereinbilling information is further derived from information consisting of a“from” number and a “to” number.
 3. A non-transitory computer readablemedium having stored thereon instructions that when executed by aprocessor cause the processor to perform a method of call completioncomprising: (a) displaying contact information comprising informationrelating to a telephone call that may be completed; (b) receiving auniform resource locator (URL) including call setup information havingan indication of the telephone call to be completed from a firsttelephonic device to a second telephonic device, wherein the call setupinformation includes an identification of the first telephonic deviceand an identification of the second telephonic device; (c) initiating acall to the first telephonic device or the second telephonic deviceusing a session initiation protocol (SIP) INVITE method and the receivedcall setup information; (d) transferring the call using a SIP REFERmethod in response to an answer of the call to establish the telephonecall from the first telephonic device to the second telephonic deviceand the received call setup information; and (e) billing the telephonecall to an appropriate account, wherein billing information is derivedfrom a “bill to” number supplied in the URL.
 4. The non-transitorycomputer readable medium of claim 3, wherein billing information isfurther derived from information consisting of a “from” number and a“to” number.